import router from '@/router'
import useUserStore from './stores/user'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

// 使用pinia中的模块时，建议在ts/js中 创建pinia模块对象时，代码写在应用初始化完毕时（函数中）

// to:要去的组件
// from:离开的组件
// next: 函数 next()放行  next(false)不放行  next(路径) 跳转到要去的路径

const whiteList = ['/login', '/404']

// 路由前置守卫
router.beforeEach((to, from, next) => {
  NProgress.start()
  const user = useUserStore()
  const token = user.userInfo.token
  if (token) {
    //有token，登录
    if (to.path === '/login') {
      next('/')
    } else {
      next()
    }
  } else {
    //没有token ,没登录
    if (whiteList.includes(to.path)) {
      next()
    } else {
      next('/login')
    }
  }
})

// 路由后置守卫
router.afterEach(() => {
  NProgress.done()
})
